home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / m / magazin / hitdisk / joystick.txt < prev    next >
Encoding:
Text File  |  1996-09-18  |  2.2 KB  |  76 lines

  1. Joystickabfrage in GFA Basic 2.x
  2.  
  3. Dieser Bericht ist schon in der Ausgabe 2/89 erschienen, doch es gab  ein
  4. kleines   Problem. Der Wert der Joystickadresse wird nicht zurückgesetzt.
  5. Hier nun nochmal das gleiche Programm mit diesem kleinen Zusatz.
  6.  
  7. In GFA Basic 2.0 gibt es im Gegensatz zur 3.0 Version keinen Befehl, der
  8. der den Joystick abfrägt. Jedoch ist es auch nicht schwer im 2.0er  dies
  9. zu meistern.
  10.  
  11. HIDEM
  12. aj$=CHR$(&H14)
  13. bj$=CHR$(&H15)
  14. cj$=CHR$(&H8)
  15. joy%=XBIOS(34)+60
  16. VOID XBIOS(&H19,3,L:VARPTR(aj$))
  17.  
  18. In aj$ haben wir die Adresse  um  mit dem zweiten  XBIOS Befehl die Maus
  19. auszuschalten. Die anderen beiden (bj$ und cj$)  helfen  uns  am  Schluβ
  20. eines  Programms  die Maus wieder aus den 'ewigen Jagdgründen'zu  holen.
  21. Mit XBIOS(34)+60 steuern wir die Joystickregister an.
  22.  
  23. Mit PEEK (joy%+1) erhalten   wir  einen Wert, der den 9 Richtungen zuge-
  24. ordnet ist.
  25.  
  26. Das sieht dann so aus:              Mit gedrückten Feuerknopf so:
  27.  
  28.            5    1    9                          133    129    137
  29.  
  30.            4    0    8                          132    128    136
  31.  
  32.            6    2   10                          134    130    138
  33.  
  34.  
  35. Wir setzen die Abfrage in eine Schleife und erhalten dann immer den Wert
  36. der aktuellen Richtung.
  37.  
  38. z.B. so:
  39.  
  40. DO
  41.  s=PEEK(joy%+1)
  42. LOOP
  43.  
  44. Nun müssen wir am Schluβ des Programms die Maus wieder einschalten.  Das
  45. machen wir mit den beiden Variablen bj$ und cj$ und einen  XBIOS Befehl.
  46.  
  47. VOID XBIOS(&H19,3,L:VARPTR(bj$))
  48. VOID XBIOS(&H19,3,L:VARPTR(cj$))
  49.  
  50.  
  51. Wollen Sie den Feuerknopf abfragen, müssen Sie nach  jeder  erfolgreichen
  52. Abdfrage  die    Joystickadresse  auf  Null  setzen.  Das  machen wir mit
  53. POKE joy%+1,0 .
  54.  
  55. z.B.
  56.  
  57. DO
  58.  s=PEEK(joy%+1)
  59.  IF s=128
  60.   POKE joy%+1,0
  61.   PRINT "Feuer"
  62.  ENDIF
  63. LOOP
  64.  
  65. Wer es besonders   genau nimmt, sollte die Adresse nach jedem Aufruf auf
  66. Null setzen.
  67.  
  68.  
  69. Diese Joystickroutine  funktioniert  mit  jeder  TOS Version, soweit wir
  70. wissen auch auf TOS 1.6 (STE).
  71.  
  72. Ein kleines Demoprogramm ist im  Ordner  PROGRAMM.E als JOYSTICK.LST ge-
  73. speichert. Es kann mit dem Merge Befehl eingeladen werden.
  74.  
  75.                                                                       HH
  76. ə